This invention relates to reading and decoding bar-coded labels having such formats as "CODABAR" which is a trademark of Monarch Marking Systems, Inc. or "CODE 39" which is a registered trademark of Interface Mechanisms, Inc. More particularly, the invention relates to electronic circuitry associated with a label reader scanning system for processing signals generated by such scanning systems.
A "CODABAR" coded character is an ordered arrangement of four bars and three spaces. With the exception of the widths of the bars and spaces associated with the "START" and "STOP" codes, each bar and space in the coded character has a width defined by one of two fixed standard values. An intercharacter space, used to separate one coded character from the next, may have a width similar to a standard width. In this event, it is likely that a false character identification will be generated based upon the read portions of the two adjacent characters with the intercharacter space in between.
To avoid this problem, most prior art "CODABAR" systems have been designed to use a count-of-four bars to determine whether the character data is complete before an attempt is made to decode the corresponding data. However, a shortcoming of this method is that should a scan fail to detect a bar in any given character for any reason, the reader will try to decode that character based upon the interval comprising the three bars it did detect plus the first bar from the next character representation along with the intercharacter space. A false character decode usually results, with the remaining characters in the string equally likely to be misread since the bar count becomes unsynchronized with the scan across each succeeding coded character. It has been determined experimentally for the characters in the set that such a decoding scheme misreads a false character 20% to 50% of the time. This factor alone usually demands interruption of the label reading procedure.
Techniques for determining the comparative sizes of adjacent bars and spaces and assignment of binary codes to the outcome of these comparisons for generating message binary data strings are known in the art. For example, see U.S. Pat. Nos. 3,778,597, 3,854,036, 3,906,203 and 4,012,716. More specifically, U.S. Pat. Nos. 3,854,036 and 3,887,792 detail means for converting the widths of scanned bars and spaces into logarithmic form in order to extend the dynamic range of label reading speeds and, in addition, to facilitate calculating the log ratios of adjacent bars and/or spaces. U.S. Pat. No. 3,868,634 discloses a method and apparatus for reading damaged or skewed labels. U.S. Pat. Nos. 3,778,597 and 4,012,716 show error-detection schemes which serve only to delete entire character strings based upon an erroneous decode of a single character in a particular data stream.
Apparatus for decoding binary coded data streams using shift registers and decoders to generate a sequence of identified characters corresponding to the bar-space patterns appearing in any given scan across the label is also well known in the patent art (see U.S. Pat. Nos. 3,868,634 and 3,906,203).
In contrast, the system of the instant invention provides a means for using the bar count corresponding to the number of bars which have been scanned since the last character was decoded (either valid or false), and a ROM (read only memory) to continuously correlate the resultant stream of data bits with their respective ASCII character representations. If the number of bars measured since the last character decode is less than four and a decode is possible for the scanned bar-space array, the bar count is sent to a computer together with a quasi-identification of the decoded character. Should a count of greater than four be generated after the last identified or quasi-identified character, the instant quasi-identified character is discarded. In this manner, the computer can detect the occurrence of false character decodes spanning the bar-space patterns of two or more characters but still allows the character string decoding to proceed to the end of the label without interruption. Finally, the invention provides computer means to assemble each scan's string of identified or quasi-identified characters on a scan-by-scan basis over a sequence of scans in accordance with at least one of their respective start-stop (or stop-start) codes and/or control character such that defective or skewed labels can be read. An intermediately located control character(s) can be used to facilitate reading long labels which are canted with respect to the scan direction (that is, when neither start nor stop characters can be read on a single scan).